.icon {
  position: relative;
  display: inline-block;
  width: 50px !important;
  height: 40px !important;
}

.cloud {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  width: 3.6875 * 5px;
  height: 3.6875 * 5px;
  margin: -1.84375 * 5px;
  background: #fff;
  border-radius: 50%;
  box-shadow: -2.1875 * 5px 0.6875 * 5px 0 -0.6875 * 5px #fff,
    2.0625 * 5px 0.9375 * 5px 0 -0.9375 * 5px #fff, 0 0 0 0.375 * 5px #ddd,
    -2.1875 * 5px 0.6875 * 5px 0 -0.3125 * 5px #ddd,
    2.0625 * 5px 0.9375 * 5px 0 -0.5625 * 5px #ddd;
}

.cloud::after {
  position: absolute;
  bottom: 0;
  left: -0.5 * 5px;
  display: block;
  width: 4.5625 * 5px;
  height: 1 * 5px;
  background: #fff;
  box-shadow: 0 0.375 * 5px #ddd;
  content: '';
}

.cloud:nth-child(2) {
  z-index: 0;
  background: #666;
  box-shadow: -2.1875 * 5px 0.6875 * 5px 0 -0.6875 * 5px #666,
    2.0625 * 5px 0.9375 * 5px 0 -0.9375 * 5px #666, 0 0 0 0.375 * 5px #666,
    -2.1875 * 5px 0.6875 * 5px 0 -0.3125 * 5px #666,
    2.0625 * 5px 0.9375 * 5px 0 -0.5625 * 5px #666;
  transform: scale(0.5) translate(6 * 5px, -3 * 5px);
  transform: scale(0.5) translate(6 * 5px, -3 * 5px);
  transform: scale(0.5) translate(6 * 5px, -3 * 5px);
  opacity: 0.3;
  animation: cloud 4s linear infinite;
  animation: cloud 4s linear infinite;

  &::after {
    background-color: #666 !important;
    box-shadow: 0 1.875px #666 !important;
  }
}

.cloud:nth-child(2)::after {
  background: #ddd;
}

.sun {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2.5 * 5px;
  height: 2.5 * 5px;
  margin: -1.25 * 5px;
  border-radius: 50%;
  box-shadow: 0 0 0 0.375 * 5px #ff9100;
  animation: spin 12s infinite linear;
  animation: spin 12s infinite linear;
}

.rays {
  position: absolute;
  top: -2 * 5px;
  left: 50%;
  display: block;
  width: 0.375 * 5px;
  height: 1.125 * 5px;
  margin-left: -0.1875 * 5px;
  background: #ff9100;
  border-radius: 0.25 * 5px;
  box-shadow: 0 5.375 * 5px #ff9100;
}

.rays::before,
.rays::after {
  position: absolute;
  top: 0 * 5px;
  left: 0 * 5px;
  display: block;
  width: 0.375 * 5px;
  height: 1.125 * 5px;
  background: #ff9100;
  border-radius: 0.25 * 5px;
  box-shadow: 0 5.375 * 5px #ff9100;
  transform: rotate(60deg);
  transform: rotate(60deg);
  transform: rotate(60deg);
  transform-origin: 50% 3.25 * 5px;
  transform-origin: 50% 3.25 * 5px;
  transform-origin: 50% 3.25 * 5px;
  content: '';
}

.rays::before {
  transform: rotate(120deg);
  transform: rotate(120deg);
  transform: rotate(120deg);
}

.cloud + .sun {
  margin: -2 * 5px 1 * 5px;
}

.rain,
.lightning,
.snow {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  width: 3.75 * 5px;
  height: 3.75 * 5px;
  margin: 0.375 * 5px 0 0 -2 * 5px;
}

.rain::after {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  width: 1.125 * 5px;
  height: 1.125 * 5px;
  margin: -1 * 5px 0 0 -0.25 * 5px;
  background: #0cf;
  border-radius: 100% 0 60% 50% / 60% 0 100% 50%;
  box-shadow: 0.625 * 5px 0.875 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
    -0.875 * 5px 1.125 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
    -1.375 * 5px -0.125 * 5px 0 rgba(255, 255, 255, 20%);
  transform: rotate(-28deg);
  transform: rotate(-28deg);
  transform: rotate(-28deg);
  animation: rain 3s linear infinite;
  animation: rain 3s linear infinite;
  content: '';
}

.bolt {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1 * 5px;
  height: 0.5 * 5px;
  margin: -0.875 * 5px 0 0 -0.5 * 5px;
  color: #ddd;
  background: #ddd;
  opacity: 0.3;
  animation: lightning 2s linear infinite;
  animation: lightning 2s linear infinite;
}

.bolt:nth-child(2) {
  width: 0.5 * 5px;
  height: 0.25 * 5px;
  margin: -1.875 * 5px 0 0 -1.5 * 5px;
  transform: translate(2.5 * 5px, 2.25 * 5px);
  transform: translate(2.5 * 5px, 2.25 * 5px);
  transform: translate(2.5 * 5px, 2.25 * 5px);
  opacity: 0.2;
  animation: lightning 1.5s linear infinite;
  animation: lightning 1.5s linear infinite;
}

.bolt::before,
.bolt::after {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  margin: -1.75 * 5px 0 0 -1.25 * 5px;
  border-top: 1.25 * 5px solid transparent;
  border-right: 0.75 * 5px solid;
  border-bottom: 0.75 * 5px solid;
  border-left: 0.5 * 5px solid transparent;
  transform: skewX(-10deg);
  transform: skewX(-10deg);
  transform: skewX(-10deg);
  content: '';
}

.bolt::after {
  margin: -0.25 * 5px 0 0 -0.0125 * 5px;
  border-top: 0.75 * 5px solid;
  border-right: 0.5 * 5px solid transparent;
  border-bottom: 1.25 * 5px solid transparent;
  border-left: 0.75 * 5px solid;
  transform: skewX(-10deg);
  transform: skewX(-10deg);
  transform: skewX(-10deg);
}

.bolt:nth-child(2)::before {
  margin: -0.875 * 5px 0 0 -0.75 * 5px;
  border-top: 0.625 * 5px solid transparent;
  border-right: 0.375 * 5px solid;
  border-bottom: 0.375 * 5px solid;
  border-left: 0.25 * 5px solid transparent;
}

.bolt:nth-child(2)::after {
  margin: -0.125 * 5px 0 0 0;
  border-top: 0.375 * 5px solid;
  border-right: 0.25 * 5px solid transparent;
  border-bottom: 0.625 * 5px solid transparent;
  border-left: 0.375 * 5px solid;
}

.flake::before,
.flake::after {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -21.25px 0 0 -21.25px;
  color: #ddd;
  opacity: 0.2;
  animation: spin 8s linear infinite reverse;
  animation: spin 8s linear infinite reverse;
  content: '\2744';
  zoom: 0.5;
}

.flake::after {
  margin: 1.375px 0 0 -13.875px;
  font-size: 7.5px;
  opacity: 0.4;
  animation: spin 14s linear infinite;
  animation: spin 14s linear infinite;
  zoom: 0.6;
}

.flake:nth-child(2)::before {
  margin: -9.375px 0 0 -0.75px;
  font-size: 1.25 * 5px;
  opacity: 0.2;
  animation: spin 10s linear infinite;
  animation: spin 10s linear infinite;
  zoom: 0.8;
}

.flake:nth-child(2)::after {
  margin: 5px 0 0 1.625px;
  font-size: 10px;
  opacity: 0.4;
  animation: spin 16s linear infinite reverse;
  animation: spin 16s linear infinite reverse;
  zoom: 0.8;

  /* Animations */
}

@keyframes spin {
  100% {
    transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes spin {
  100% {
    transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes cloud {
  0% {
    opacity: 0;
  }

  50% {
    opacity: 0.3;
  }

  100% {
    transform: scale(0.5) translate(-6 * 5px, -3 * 5px);
    transform: scale(0.5) translate(-6 * 5px, -3 * 5px);
    opacity: 0;
  }
}

@keyframes cloud {
  0% {
    opacity: 0;
  }

  50% {
    opacity: 0.3;
  }

  100% {
    transform: scale(0.5) translate(-6 * 5px, -3 * 5px);
    transform: scale(0.5) translate(-6 * 5px, -3 * 5px);
    opacity: 0;
  }
}

@keyframes rain {
  0% {
    background: #0cf;
    box-shadow: 0.625 * 5px 0.875 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -0.875 * 5px 1.125 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -1.375 * 5px -0.125 * 5px 0 #0cf;
  }

  25% {
    box-shadow: 0.625 * 5px 0.875 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -0.875 * 5px 1.125 * 5px 0 -0.125 * 5px #0cf,
      -1.375 * 5px -0.125 * 5px 0 rgba(255, 255, 255, 20%);
  }

  50% {
    background: rgba(255, 255, 255, 30%);
    box-shadow: 0.625 * 5px 0.875 * 5px 0 -0.125 * 5px #0cf,
      -0.875 * 5px 1.125 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -1.375 * 5px -0.125 * 5px 0 rgba(255, 255, 255, 20%);
  }

  100% {
    box-shadow: 0.625 * 5px 0.875 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -0.875 * 5px 1.125 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -1.375 * 5px -0.125 * 5px 0 #0cf;
  }
}

@keyframes rain {
  0% {
    background: #0cf;
    box-shadow: 0.625 * 5px 0.875 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -0.875 * 5px 1.125 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -1.375 * 5px -0.125 * 5px 0 #0cf;
  }

  25% {
    box-shadow: 0.625 * 5px 0.875 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -0.875 * 5px 1.125 * 5px 0 -0.125 * 5px #0cf,
      -1.375 * 5px -0.125 * 5px 0 rgba(255, 255, 255, 20%);
  }

  50% {
    background: rgba(255, 255, 255, 30%);
    box-shadow: 0.625 * 5px 0.875 * 5px 0 -0.125 * 5px #0cf,
      -0.875 * 5px 1.125 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -1.375 * 5px -0.125 * 5px 0 rgba(255, 255, 255, 20%);
  }

  100% {
    box-shadow: 0.625 * 5px 0.875 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -0.875 * 5px 1.125 * 5px 0 -0.125 * 5px rgba(255, 255, 255, 20%),
      -1.375 * 5px -0.125 * 5px 0 #0cf;
  }
}

@keyframes lightning {
  45% {
    color: #ddd;
    background: #ddd;
    opacity: 0.2;
  }

  50% {
    color: #0cf;
    background: #0cf;
    opacity: 1;
  }

  55% {
    color: #ddd;
    background: #ddd;
    opacity: 0.2;
  }
}

@keyframes lightning {
  45% {
    color: #ddd;
    background: #ddd;
    opacity: 0.2;
  }

  50% {
    color: #0cf;
    background: #0cf;
    opacity: 1;
  }

  55% {
    color: #ddd;
    background: #ddd;
    opacity: 0.2;
  }
}

.hoverablec {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;

  &:hover {
    opacity: 1 !important;
  }
}
